When I look at book details using the cloud connection my custom columns "built from other columns" are missing. Why?


The values for calibre custom columns "built from other columns" ("composite" columns) are not stored in calibre's database. Instead, calibre computes them when needed. Because of this, CC cannot read these values from the database stored in the cloud.

There are three cases to consider. You are running:

  • CC V5.1.1 and later with calibre 2.54 and later
  • CC V5.1.0 or without the plugin installed in calibre
  • CC V4

Each is discussed below.

CC V5.1.1 and later with calibre 2.54 and later: If CC and calibre are new enough then the values for the composite columns can be saved every time you use the calibre GUI on a library. The information is saved by an optional plugin when the library is closed or when you change to a different library.

This method is more reliable then the option discussed below (use the metadata.opf file) because there is no delay between closing the GUI and the correct values being saved in the library. However, saving the values in calibre can take a few seconds. The method is also much faster in CC when downloading books because CC does not need to download the metadata.opf file. Avoiding the download can save several seconds per book when looking at the metadata for a book in CC's cloud connection or downloading a book using long-press or "Download all".

The plugin, which is a Library Closed plugin named Save Composite Custom Columns, is available in this MobileRead post, in calibre's Index of Plugins page and through calibre's Get Plugins feature (Preferences / Plugins / Get new plugins).

If the plugin is not installed then CC behaves as described below.

See the FAQ How can I see my custom "columns made from other columns" in the Cloud Connection's top-level list? for more information about using the plugin.

CC V5.1.0 or without the plugin installed in calibre: The values for composite columns are also stored by calibre in the "metadata.opf" file saved with every book in the calibre library. When you use the cloud connection to download a book or to look at a book's details and if the plugin described above is not installed, then CC fetches the metadata.opf and reads the composite column values from that file. Fetching the file can take several seconds.

It is possible that the metadata.opf file is not up to date because when you change metadata for a book, calibre writes the metadata.opf files one-by-one. Calibre writes these files while it is running at the rate of around 2 files per second. If you exit calibre before it is finished writing the files then the values for the composite columns stored in old metadata.opf might not be correct. CC detects this possibility, notifies you, and then uses the possibly-incorrect values. 

You can see if calibre has finished by (in calibre) clicking the Library button, choosing "Library Maintenance", then "Library metadata backup status".

You can avoid this problem by ensuring that calibre has finished writing the files in one of two ways:

  • Leave calibre running until the metadata backup status says that it is finished.
  • Run the calibre command line program "calibredb backup_metadata". The files will be up to date when it finishes.

    Advanced idea: you might consider putting this command in a script that you use to start calibre so that the files written as soon as possible. On windows the script file (a .bat file) might contain:

calibre
calibredb backup_metadata

The calibredb command will write any out-of-date metadata.opf files, then exit.

Note: connecting to calibre using the wireless device connection will automatically update the values of all metadata, including composite columns.

CC V4: CC V4 cannot fetch composite columns values. The result: the values are empty. Upgrade to CC V5.

Author:
Charles Haley
Revision:
1.0
Average rating:0 (0 Votes)

You cannot comment on this entry

Chuck Norris has counted to infinity. Twice.